// To parse this JSON data, do
//
//     final zjJobDetailsModel = zjJobDetailsModelFromJson(jsonString);

import 'dart:convert';

ZJJobDetailsModel zjJobDetailsModelFromJson(String str) => ZJJobDetailsModel.fromJson(json.decode(str));

String zjJobDetailsModelToJson(ZJJobDetailsModel data) => json.encode(data.toJson());

class ZJJobDetailsModel {
  ZJJobDetailsModel({
    this.delivery,
    this.collectionPosition,
    this.publishDetail,
  });

  bool delivery;
  bool collectionPosition;
  PublishDetail publishDetail;

  factory ZJJobDetailsModel.fromJson(Map<String, dynamic> json) => ZJJobDetailsModel(
    delivery: json["delivery"],
    collectionPosition: json["collectionPosition"],
    publishDetail: PublishDetail.fromJson(json["publishDetail"]),
  );

  Map<String, dynamic> toJson() => {
    "delivery": delivery,
    "collectionPosition": collectionPosition,
    "publishDetail": publishDetail.toJson(),
  };
}

class PublishDetail {
  PublishDetail({
    this.id,
    this.companyId,
    this.pushPosition,
    this.pushPositionId,
    this.industry,
    this.industryId,
    this.startSalary,
    this.endSalary,
    this.startWorkYear,
    this.endWorkYear,
    this.education,
    this.educationName,
    this.provinceId,
    this.provinceName,
    this.cityId,
    this.cityName,
    this.companyName,
    this.referredName,
    this.countyName,
    this.countyId,
    this.streetId,
    this.streetName,
    this.addr,
    this.pushType,
    this.pushTime,
    this.createTime,
    this.status,
    this.bonusAmount,
    this.rewardAmount,
    this.describe,
    this.number,
    this.numberName,
    this.natureOfBusiness,
    this.natureOfBusinessName,
    this.longitude,
    this.latitude,
    this.isTop,
    this.sort,
    this.logo,
    this.location,
    this.createrId,
    this.createrName,
    this.tag,
    this.portraitUrl,
    this.gender,
    this.workYear,
    this.browseNumber,
    this.collectionNumber,
    this.communicatedNumber,
    this.rewardNumber,
    this.redReceive,
    this.rewardReceive,
    this.redNumber,
    this.redEnvelope,
    this.treatment,
    this.endTime,
    this.position,
    this.workId,
    this.pushTitle,
    this.officeAddress,
    this.officePosition,
    this.tagId,
    this.companyCityName,
    this.labelList,
  });

  String id;
  String companyId;
  String pushPosition;
  int pushPositionId;
  String industry;
  dynamic industryId;
  double startSalary;
  double endSalary;
  dynamic startWorkYear;
  dynamic endWorkYear;
  int education;
  String educationName;
  int provinceId;
  String provinceName;
  int cityId;
  String cityName;
  String companyName;
  String referredName;
  String countyName;
  int countyId;
  dynamic streetId;
  dynamic streetName;
  String addr;
  int pushType;
  DateTime pushTime;
  dynamic createTime;
  int status;
  double bonusAmount;
  double rewardAmount;
  String describe;
  int number;
  String numberName;
  int natureOfBusiness;
  String natureOfBusinessName;
  double longitude;
  double latitude;
  int isTop;
  dynamic sort;
  String logo;
  dynamic location;
  int createrId;
  String createrName;
  String tag;
  String portraitUrl;
  int gender;
  String workYear;
  int browseNumber;
  int collectionNumber;
  int communicatedNumber;
  dynamic rewardNumber;
  dynamic redReceive;
  dynamic rewardReceive;
  dynamic redNumber;
  dynamic redEnvelope;
  String treatment;
  String endTime;
  String position;
  int workId;
  String pushTitle;
  String officeAddress;
  dynamic officePosition;
  String tagId;
  String companyCityName;
  List<LabelList> labelList;

  factory PublishDetail.fromJson(Map<String, dynamic> json) => PublishDetail(
    id: json["id"],
    companyId: json["companyId"],
    pushPosition: json["pushPosition"],
    pushPositionId: json["pushPositionId"],
    industry: json["industry"],
    industryId: json["industryId"],
    startSalary: json["startSalary"],
    endSalary: json["endSalary"],
    startWorkYear: json["startWorkYear"],
    endWorkYear: json["endWorkYear"],
    education: json["education"],
    educationName: json["educationName"],
    provinceId: json["provinceId"],
    provinceName: json["provinceName"],
    cityId: json["cityId"],
    cityName: json["cityName"],
    companyName: json["companyName"],
    referredName: json["referredName"],
    countyName: json["countyName"],
    countyId: json["countyId"],
    streetId: json["streetId"],
    streetName: json["streetName"],
    addr: json["addr"],
    pushType: json["pushType"],
    pushTime: DateTime.parse(json["pushTime"]),
    createTime: json["createTime"],
    status: json["status"],
    bonusAmount: json["bonusAmount"],
    rewardAmount: json["rewardAmount"],
    describe: json["describe"],
    number: json["number"],
    numberName: json["numberName"],
    natureOfBusiness: json["natureOfBusiness"],
    natureOfBusinessName: json["natureOfBusinessName"],
    longitude: json["longitude"].toDouble(),
    latitude: json["latitude"].toDouble(),
    isTop: json["isTop"],
    sort: json["sort"],
    logo: json["logo"],
    location: json["location"],
    createrId: json["createrId"],
    createrName: json["createrName"],
    tag: json["tag"],
    portraitUrl: json["portraitUrl"],
    gender: json["gender"],
    workYear: json["workYear"],
    browseNumber: json["browseNumber"],
    collectionNumber: json["collectionNumber"],
    communicatedNumber: json["communicatedNumber"],
    rewardNumber: json["rewardNumber"],
    redReceive: json["redReceive"],
    rewardReceive: json["rewardReceive"],
    redNumber: json["redNumber"],
    redEnvelope: json["redEnvelope"],
    treatment: json["treatment"],
    endTime: json["endTime"],
    position: json["position"],
    workId: json["workId"],
    pushTitle: json["pushTitle"],
    officeAddress: json["officeAddress"],
    officePosition: json["officePosition"],
    tagId: json["tagId"],
    companyCityName: json["companyCityName"],
    labelList: List<LabelList>.from(json["labelList"].map((x) => LabelList.fromJson(x))),
  );

  Map<String, dynamic> toJson() => {
    "id": id,
    "companyId": companyId,
    "pushPosition": pushPosition,
    "pushPositionId": pushPositionId,
    "industry": industry,
    "industryId": industryId,
    "startSalary": startSalary,
    "endSalary": endSalary,
    "startWorkYear": startWorkYear,
    "endWorkYear": endWorkYear,
    "education": education,
    "educationName": educationName,
    "provinceId": provinceId,
    "provinceName": provinceName,
    "cityId": cityId,
    "cityName": cityName,
    "companyName": companyName,
    "referredName": referredName,
    "countyName": countyName,
    "countyId": countyId,
    "streetId": streetId,
    "streetName": streetName,
    "addr": addr,
    "pushType": pushType,
    "pushTime": pushTime.toIso8601String(),
    "createTime": createTime,
    "status": status,
    "bonusAmount": bonusAmount,
    "rewardAmount": rewardAmount,
    "describe": describe,
    "number": number,
    "numberName": numberName,
    "natureOfBusiness": natureOfBusiness,
    "natureOfBusinessName": natureOfBusinessName,
    "longitude": longitude,
    "latitude": latitude,
    "isTop": isTop,
    "sort": sort,
    "logo": logo,
    "location": location,
    "createrId": createrId,
    "createrName": createrName,
    "tag": tag,
    "portraitUrl": portraitUrl,
    "gender": gender,
    "workYear": workYear,
    "browseNumber": browseNumber,
    "collectionNumber": collectionNumber,
    "communicatedNumber": communicatedNumber,
    "rewardNumber": rewardNumber,
    "redReceive": redReceive,
    "rewardReceive": rewardReceive,
    "redNumber": redNumber,
    "redEnvelope": redEnvelope,
    "treatment": treatment,
    "endTime": endTime,
    "position": position,
    "workId": workId,
    "pushTitle": pushTitle,
    "officeAddress": officeAddress,
    "officePosition": officePosition,
    "tagId": tagId,
    "companyCityName": companyCityName,
    "labelList": List<dynamic>.from(labelList.map((x) => x.toJson())),
  };
}

class LabelList {
  LabelList({
    this.name,
    this.id,
  });

  String name;
  String id;

  factory LabelList.fromJson(Map<String, dynamic> json) => LabelList(
    name: json["name"],
    id: json["id"],
  );

  Map<String, dynamic> toJson() => {
    "name": name,
    "id": id,
  };
}
